package org.rasterfun.language2

/**
 * Supertype for different types of expressions that produce some result value.
 *
 * @author Hans Haggstrom
 */
trait Expression extends Compilable {

	def checkTypes() {}

	/**
	 * The type of this expression.
	 */
	def kind: Kind

//    def getProperty( context : Context, identifier : String, default : => Expression ) : Expression = default

//    def getProperty( context : Context, identifier : String ) : Expression = value(context).getProperty( context, identifier, PropertyNotFound( identifier, this ) )

  def operation(op: String, other: Expression): Expression = null

}

